Skip to main content

オブジェクト:タスク

シンボル: _cds_icon_task_editor.png

オブジェクトでタスクを設定します。優先度、タイプと時間動作、ウォッチドッグを設定できます。追加することもできます PROGRAM コール。

オブジェクトは、デバイスツリーの下にあります。 タスク設定

タブ:構成

オブジェクト: _cds_icon_task_editor.png タスク

優先度

設定可能な値:0.. 31、0 が最高優先度

タスクグループ

割り当てられた タスクグループ マルチコアの特定のプロセッサコアに割り当てることができます

例: IEC タスク

注:タスクグループは、デバイスツリーのタスクの後に括弧で囲まれて表示されます。

重要

Linuxでランタイムシステムを使用する場合、タスクグループと優先度の間に固定の依存関係が存在します。詳細については、以下を参照してください。 Linuxシステムでのタスクの優先順位のマッピング

タイプ

タイプ: _cds_icon_task_periodic.png 環状

タスクの処理は周期的に行われます。

入力フィールド: 間隔

必須

タスクが再開されるまでの期間 (タスクサイクルタイム)

  • 形式の時間定義として TIME#

    例: t#200ms

  • 数値として

    例: 200

    注:番号は次の形式で自動的に表示されます TIME# 入力フィールドに再びフォーカスが移ったとき。

注:この目的のタスクサイクルタイムからのタスクの偏差は、実行時に定期的なジッターとして表示されます。 タブ:監視 タブ。

間隔の時間単位

に数値のみが指定され、時間の定義は指定されていない場合 間隔 入力フィールド、次にここで選択した単位によって時間ディメンションが決まります。

例: ミリ秒

注:µs 単位のタスクサイクルタイムは常に数値で表示されます。

タイプ: _cds_icon_task_event_internal.png [イベント]

タスクの処理は、イベント変数の上昇端でイベントトリガーによって開始されます。

入力フィールド: イベント

グローバル変数 (ブール型)

変数値が 0 から 1 に切り替わるとすぐにタスクが開始されます。

タイプ: _cds_icon_task_event_external.png 外部

タスクの処理は、イベント変数の上昇端でイベントトリガーによって開始されます。

リストボックス: イベント

ターゲットシステム依存イベントのリスト (Boolean 型)

注:ターゲットシステムによって、どのイベントがサポートされ、リストボックスに表示されるかが決まります。

ヒント:システムイベントと混同しないでください

間隔

での時間定義 TIME# 形式または時間単位の数値としてフォーマットする

注:イベントで時間定義が必要な場合にのみ使用できます

タイプ: 自由奔放

タスクの処理は、プログラムの開始時と実行終了後、一定の待機時間後に自動的に連続ループで再開されます。

重要:実行の完了後、タスクが再度実行されるまでに一定時間待機します。この期間は、最後のサイクル期間のパーセンテージです

注:サイクルタイムは定義しません。

タイプ: 状態

タスクの処理は、イベント変数によってステートトリガーされて開始されます

入力フィールド: イベント

グローバル変数 (ブール型)

変数の状態が TRUE、タスクはフリーホイールを開始します。タスクは変数が値を取得するまで実行されます。 FALSE

注: 変数は通常、タスク自体でリセットされます。イベントタスクとは対照的に、この方法ではイベントを見逃すことはありません。イベントが発生すると、スケジューラは古い値を保存する必要があり、これはチェックされるよりも頻繁に変更される可能性があります。そのため、イベント変数が次のように変更された場合、 TRUE 短時間だけの場合、スケジューラはこの変更を検出しない可能性があります。これはステータスタスクで回避できます。ステータス変数は次のように設定されます。 TRUE 他のタスクによって実行され、ステータスタスクによってリセットされます。これにより、タスクが切り替わるたびに1回実行されるようになります。 TRUE

重要

フィールドバスでは、決まった動作を保証するために固定サイクルマトリックスが必要です。したがって、 タイプ 自由奔放 バスサイクルタスク用。

重要

処理タイプには以下の違いがあることに注意してください。 ステータスイベント: 指定したイベントで次の結果が出た場合 TRUE次に、次のタイプのタスクの開始条件 ステータス 満たされています。これとは対照的に、あるタイプのタスクの開始です イベント からのイベントの切り替えが必要 FALSETRUE。タスクスケジューラのサンプリングレートが低すぎると、イベントの盛り上がりが見過ごされてしまうことがあります

重要

タスクサイクルタイムを設定するときは、現在使用されているバスシステムを特定する必要があります。たとえば、CAN バスシステムのタスクサイクルタイムは、現在設定されているボーレートとバスで使用されているフレーム数と一致している必要があります。さらに、ハートビート、ノードガーディング、および同期に設定する時間は、常にタスクサイクル時間の倍数でなければなりません。そうしないと、CAN フレームが失われる可能性があります。

詳細については、以下を参照してください。 タブ:監視

ウォッチドッグ

タスクの時間監視を定義します。ターゲットシステムが高度なウォッチドッグ設定をサポートしている場合、デバイスの説明に以下の設定があらかじめ定義されている可能性があります

  • 上限と下限

  • デフォルトのウォッチドッグ時間

  • パーセンテージで指定された時間

デフォルトのウォッチドッグ設定はデバイスによって異なります。

有効にする

_cas_icon_option_activated.png: ウォッチドッグはアクティブです。

タスクがウォッチドッグの現在設定されている時間を超えると、タスクはエラーステータス(例外)で停止します。エラーが発生したタスクのアプリケーションとその子アプリケーションも停止されます。これにより、影響を受けたアプリケーションのすべてのタスクも停止されます。次に、現在定義されているのは 感度 も考慮されます。

オプションを有効にした場合 I/O の更新PLC 設定 PLC の、そして CODESYS 出力を定義済みのデフォルト値にリセットします。

. 考えられるケース:
  • 複数の連続タイムアウト:

    感度:0、1 — サイクル 1 では例外

    感度:2 — サイクル 2 では例外

    感度:n — サイクル n での例外

  • シングルタイムアウト:現在のサイクルのサイクルタイムが (時間 x 感度) より長い場合は例外です。例:time=T #10ms、感度=5 (つまり、1 回限りのタスクが 50 ミリ秒以上実行されるとすぐに例外が発生する

時間 (例: t#200ms)

ウォッチドッグタイム

定義 (とともに) 感度) タスクのウォッチドッグ。説明: 有効にする

ターゲットシステムによっては、監視期間は、可能であればタスク間隔のパーセンテージとして表示されます。この場合、ユニットのリストボックスは無効になり、表示されます %

感度

番号

タスクのウォッチドッグを (ウォッチドッグと一緒に) 定義します。説明は 有効にする

ヒント

ライブラリの関数を使用する CmpIecTask.library、特定の PLC サイクルの間、ウォッチドッグを非アクティブ化できます。これは、初期化のためにより多くの時間を要するサイクルに役立ちます

539.

ウォッチドッグの非アクティブ化/再アクティブ化:

VAR
hIecTask : RTS_IEC_HANDLE;
END_VAR

hIecTask := IecTaskGetCurrent(0);
IecTaskDisableWatchdog(hIecTask); //Watchdog disabled
...
IecTaskEnableWatchdog(hIecTask); //Watchdog enabled

ウォッチドッグは、初期化の前に非アクティブ化されます IecTaskDisableWatchDog 残りのサイクルの間、次のサイクルで自動的に再アクティブ化されます。

ウォッチドッグは、初期化後に再アクティブ化できます IecTaskEnableWatchDog.その後、ウォッチドッグはサイクルの残りの部分ですでに再アクティブ化されています (ウォッチドッグの時間ウィンドウは最初から再び開始されます)。



内で発生する機能ブロックの初期化 FB_Init メソッドはこれによる影響を受けません。ただし、通信タイムアウトのため、30 秒未満という制限がありました。オンライン サービスは非同期で実行されるため、この時間制限は V3.5 SP18 以降存在しません。

ヒント

IEC タスクの実行時間がウォッチドッグ時間を超えると、IEC タスクの通常のウォッチドッグがトリガーされます。

「省略サイクル」ウォッチドッグは、タスクがまったく開始されないときにトリガーされます。これは、タスクが最大値の < サイクルをまったく実行しない場合です時間 * 感度> または <2 * 間隔>。原因としては、他のタスクが混み合っていたり、スケジューラーに障害が発生してタスクを実行できなくなったりすることが考えられます

プログラムコール

POU (POU タイプ付きのオブジェクト PROGRAM) はタスクによって連続して呼び出されます。

POU が呼び出される順序は、ここで設定した呼び出し順序の上から下に対応します。

_cds_icon_task_add.png 通話を追加

入力アシスタントを開きます。を選択します。 PROGRAM POU。クリックすると OK 入力アシスタントを終了するには、これが新しい呼び出しとして以下のリストに追加されます。

_cds_icon_task_delete.png 通話を削除

通話を削除します

_cds_icon_task_edit.pngコールを変更

選択した通話の入力アシスタントを開きます。別のものを選択する PROGRAM POU。をクリックすると、コールが変更されます OK 入力アシスタントを終了します。

_cds_icon_task_moveup.png 上へ移動

_cds_icon_task_movedown.png 下に移動

コールの位置をリスト内で上または下に移動します。呼び出し順序は実行時にそれに応じて変わります。

_cds_icon_task_openpou.png POU を開く

の宣言と実装を含む POU エディタを開きます PROGRAM POU